package com.jdd.modules.operationLog.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jdd.common.api.vo.Result;
import com.jdd.modules.operationLog.entity.ParkHandOverLog;
import com.jdd.modules.order.entity.ParkOrderInfo;
import com.jdd.modules.parking.entity.ParkCarOutLog;
import com.jdd.modules.system.model.HandOverModelVo;

import java.util.List;
import java.util.Map;

/**
 * @Description: 车场交接记录
 * @Author: jdd
 * @Date:   2021-11-04
 * @Version: V1.0
 */
public interface IParkHandOverLogService extends IService<ParkHandOverLog> {

    /*** 功能描述: 点击交班后弹出框的信息
     * @param userId
     * @Author: lcy
     * @Date: 2021/11/6
     */
    Map<String,Object> getHandOverData(String userId);
    /*** 功能描述: 换班
     * @Author: lcy
     * @Date: 2021/11/6
     */
    Result<JSONObject> handOver(HandOverModelVo handOverModelVo) throws Exception;
    /*** 功能描述: 传入parkCarOutLog代表当前车辆出场操作，可以更新总出场数，异常数，正常(免费)放行数
     *            传入parkOrderInfo代表当前车辆产生了费用，可以判断钱数和是否免费
     *            parkCarOutLog无法判断是否免费，是否免费需要用parkOrderInfo的优惠卷和实付金额判断
     *            传入workUser代表当前岗亭人员
     *            传入abnormal代表异常标识，目前出场纪录没有异常字段，所以需要一个异常标识
     * @param parkCarOutLog 出场纪录
     * @param parkOrderInfo 订单信息
     * @param workUser 工作人名
     * @param abnormal 异常数
     * @Author: lcy
     * @Date: 2021/11/15
     */
    ParkHandOverLog updateHandOverAuto(ParkCarOutLog parkCarOutLog, ParkOrderInfo parkOrderInfo, String workUser, int abnormal);


    ParkHandOverLog updateHandOver(ParkOrderInfo parkOrderInfo,String workUser,int abnormal);
    /**
     * @Description  查询交接班记录同步失败的记录
     * @author shangyue
     * @Date 2022-06-02
     * @param
     * @return
     */

    List<ParkHandOverLog> selectSynchronousStatus();
}
